home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
ici
/
ici.cpi
/
float.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-10-27
|
802b
|
57 lines
#include "float.h"
float_t *
new_float(v)
double v;
{
register float_t *f;
static float_t proto = {OBJ(TC_FLOAT, float_type)};
proto.f_value = v;
if ((f = floatof(atom_probe(objof(&proto)))) != NULL)
{
got(f);
return f;
}
if ((f = talloc(float_t)) == NULL)
return NULL;
*f = proto;
rego(f);
return floatof(atom(objof(f), 1));
}
STATIC long
mark_float(o)
object_t *o;
{
o->o_flags |= O_MARK;
return sizeof(float_t);
}
STATIC int
cmp_float(f1, f2)
float_t *f1;
float_t *f2;
{
return f1->f_value != f2->f_value;
}
STATIC long
hash_float(f)
float_t *f;
{
return *(long *)&f->f_value;
}
type_t float_type =
{
mark_float,
free_simple,
hash_float,
cmp_float,
copy_simple,
assign_simple,
fetch_simple,
"float"
};